package web.suzy.oj.service.admin.tag;

import web.suzy.oj.common.result.ResultBean;
import web.suzy.oj.pojo.entity.problem.Tag;
import web.suzy.oj.pojo.entity.problem.TagClassification;

import java.util.List;

/**
 * YangSuzy 软件工作室
 * 类名: AdminTagService
 * 描述: ---- 待定 -----
 * 功能: ---- 待定 -----
 *
 * @author YangSuzy
 * Date: 2022/11/28 13:56
 */
public interface AdminTagService {
    /**
     * 方法名: addTag
     * 描述: 添加题目标签
     *
     * @param tag 标签
     * @return web.suzy.oj.common.result.ResultBean<web.suzy.oj.pojo.entity.problem.Tag>
     * @date 2022/11/28 14:31
     * @auther YangSuzy
     **/
    ResultBean<Tag> addTag(Tag tag);

    /**
     * 方法名: updateTag
     * 描述: 更新题目标签
     *
     * @param tag 标签
     * @return web.suzy.oj.common.result.ResultBean<java.lang.Void>
     * @date 2022/11/28 14:38
     * @auther YangSuzy
     **/
    ResultBean<Void> updateTag(Tag tag);

    /**
     * 方法名: deleteTag
     * 描述: 删除题目标签
     *
     * @param tid 标签ID
     * @return web.suzy.oj.common.result.ResultBean<java.lang.Void>
     * @date 2022/11/28 14:42
     * @auther YangSuzy
     **/
    ResultBean<Void> deleteTag(Long tid);

    /**
     * 方法名: getTagClassification
     * 描述: 获取标签分类
     *
     * @return web.suzy.oj.common.result.ResultBean<web.suzy.oj.pojo.entity.problem.TagClassification>
     * @date 2022/11/29 12:18
     * @auther YangSuzy
     **/
    ResultBean<List<TagClassification>> getTagClassification();

    /**
     * 方法名: addTagClassification
     * 描述: 添加标签分类
     *
     * @param tagClassification 标签分类
     * @return web.suzy.oj.common.result.ResultBean<web.suzy.oj.pojo.entity.problem.TagClassification>
     * @date 2022/11/29 13:14
     * @auther YangSuzy
     **/
    ResultBean<TagClassification> addTagClassification(TagClassification tagClassification);

    /**
     * 方法名: updateTagClassification
     * 描述: 更新标签分类
     *
     * @param tagClassification 标签分类
     * @return web.suzy.oj.common.result.ResultBean<java.lang.Void>
     * @date 2022/11/29 13:17
     * @auther YangSuzy
     **/
    ResultBean<Void> updateTagClassification(TagClassification tagClassification);

    /**
     * 方法名: deleteTagClassification
     * 描述: 删除标签分类
     *
     * @param tcid 标签分类ID
     * @return web.suzy.oj.common.result.ResultBean<java.lang.Void>
     * @date 2022/11/29 13:20
     * @auther YangSuzy
     **/
    ResultBean<Void> deleteTagClassification(Long tcid);
}
